Client-server networking is a distributed programming architecture where tasks are performed by one or more service providers (servers) in response to requests sent by one or more clients. A client process is a program enabling to send messages to a server process, the messages requesting that the server performs a task (service). A server process is a program configured for performing one or more tasks in response to a request issued by a client. In general clients initiate communication sessions with servers which listen to incoming requests. Servers may receive requests from clients to perform a variety of tasks concerning for example, database retrieval and updates, data integrity management, storage system configuration such as volume creation, volume deletion, file system modification, etc. In a computer network, clients and servers often operate on separate hardware.
Most often, servers send a response to a client's requests (or command). A response may be sent immediately once the request is received by the server or following the execution of the requested task. A server-response may include different types of information. For example, a server-response may include specific information requested by the client, a message indicating that the request has safely reached its destination, or it may comprise of status information informing the client e.g. whether the server has successfully completed the task or whether the server failed to do so. Clients are specifically configured for reading these responses, where different responses require specific adaptation of the client for reading them.